package leetcode;

/**
 * @创建人 MBY381
 * @创建时间 2022/4/14 20:36
 * @描述 给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。
 * <p>
 * 回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
 * <p>
 * 例如，121 是回文，而 123 不是
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/palindrome-number
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Solution9 {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        System.out.println(isPalindrome(100));
        System.out.println(isPalindrome(101));
        System.out.println(isPalindrome(0));
        System.out.println(isPalindrome(1));


    }

    public static boolean isPalindrome(int x) {
        if (x < 0 || (x % 10 == 0 && x != 0)) {
            return false;
        }
        int num = 0, n = x;
        do {
            num=num*10+x%10;
            x /=10;
        }
        while (x>0);
        return num==n;

//        if(x<0||(x%10==0&&x!=0)){
//            return false;
//        }
//        int num;
//        StringBuilder sb=new StringBuilder(String.valueOf(x));
//        sb.reverse();
//        num=Integer.parseInt(sb.toString());
//        return num==x;
    }

    public static boolean official(int x) {
        int revertedNumber = 0;
        while (x > revertedNumber) {
            revertedNumber = revertedNumber * 10 + x % 10;
            x /= 10;
        }
        return x == revertedNumber || x == revertedNumber / 10;
    }

}
